package Applikationslogik;
import java.util.*;
import java.sql.Timestamp;
import java.util.Vector;



/**
 *
 * @author Rene & Daniel
 */
public interface Verwaltung extends java.rmi.Remote {


    /**
     *
     * @param person_id
     * @param raum
     * @param nachname
     * @param vorname
     * @param telefon
     * @param ist_admin
     * @param email
     * @return
     * @throws java.rmi.RemoteException
     */
    public Person createPerson(int person_id, int raum, String nachname, String vorname, int telefon, boolean ist_admin, String email) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Person updatePerson(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @param y
     * @throws java.rmi.RemoteException
     */
    public void deletePerson(Person x, Person y) throws java.rmi.RemoteException ;
    /**
     *
     * @param id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Person getPerson_byid(int id) throws java.rmi.RemoteException ;
    /**
     *
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Person> getAllPerson() throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Person> getAllPerson_ohne_uebergebene_person(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param start
     * @param ende
     * @param ort
     * @param beschreibung
     * @param kategorie_id
     * @param erinnerung
     * @param person_id
     * @param eintrag_id
     * @param kalender_id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kalendereintrag createKalendereintrag(Timestamp start, Timestamp ende, String ort, String beschreibung, int kategorie_id, int erinnerung, int person_id, int eintrag_id, int kalender_id) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kalendereintrag updateKalendereintrag(Kalendereintrag x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteKalendereintrag(Kalendereintrag x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalendereintrag> get_kalendereintraege_by_person(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteKategorie(Kategorie x) throws java.rmi.RemoteException ;
    /**
     *
     * @param start
     * @param ende
     * @param ort
     * @param beschreibung
     * @param kategorie_id
     * @param erinnerung
     * @param person_id
     * @param eintrag_id
     * @param kalender_id
     * @param anzahl
     * @param serienmuster
     * @throws java.rmi.RemoteException
     */
    public void createWiederholung(Timestamp start, Timestamp ende, String ort, String beschreibung, int kategorie_id, int erinnerung, int person_id, int eintrag_id, int kalender_id, int anzahl, char serienmuster) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void updateWiederholung(Wiederholung x) throws java.rmi.RemoteException ;
    /**
     *
     * @param id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Wiederholung getWiederholung_byid(int id) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Wiederholung get_root_wiederholung(Wiederholung x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteWiederholung(Wiederholung x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Wiederholung> get_wiederholungen_by_person(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param kalender_id
     * @param bezeichnung
     * @param besitzer
     * @param berechtigung_lesen
     * @param berechtigung_schreiben
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kalender createKalender(int kalender_id, String bezeichnung, int besitzer, List<Integer> berechtigung_lesen, List<Integer> berechtigung_schreiben) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kalender updateKalender(Kalender x) throws java.rmi.RemoteException ;
    /**
     *
     * @param id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kalender getKalender_byid(int id) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalender> getKalender_byPerson(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteKalender(Kalender x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalender> getKalender_byBerechtigung(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param kategorie_id
     * @param name
     * @param person_id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kategorie createKategorie(int kategorie_id, String name, int person_id) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kategorie updateKategorie(Kategorie x) throws java.rmi.RemoteException ;
    /**
     *
     * @param id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Kategorie getKategorie_byid(int id) throws java.rmi.RemoteException ;
    /**
     *
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kategorie> get_all_Kategorie() throws java.rmi.RemoteException ;
    /**
     *
     * @param person_id
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kategorie> getallKategorie_byPerson(int person_id) throws java.rmi.RemoteException ;
    /**
     *
     * @param start
     * @param ende
     * @param ort
     * @param beschreibung
     * @param kategorie_id
     * @param erinnerung
     * @param person_id
     * @param eintrag_id
     * @param kalender_id
     * @param anzahl
     * @param serienmuster
     * @param eingeladene_personen
     * @throws java.rmi.RemoteException
     */
    public void createTermin(Timestamp start, Timestamp ende, String ort, String beschreibung, int kategorie_id, int erinnerung, int person_id, int eintrag_id, int kalender_id, int anzahl, char serienmuster, Vector <Person> eingeladene_personen)throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Termin> get_termine_by_person(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param editierter_eintrag
     * @throws java.rmi.RemoteException
     */
    public void updateTermin(Termin editierter_eintrag) throws java.rmi.RemoteException ;
    /**
     *
     * @param eingeloggte_person
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector<Termin> get_wiederholung_termine_by_person(Person eingeloggte_person) throws java.rmi.RemoteException ;
    /**
     *
     * @param editierter_eintrag
     * @throws java.rmi.RemoteException
     */
    public void updateTermin_wiederholung(Termin editierter_eintrag) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteTermin(Termin x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteTermin_Wiederholung(Termin x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalendereintrag> find_all_einladungen_by_person(Person x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @param y
     * @param z
     * @throws java.rmi.RemoteException
     */
    public void zuweisung_Kalender_Teilnahme(Kalendereintrag x, Kalender y, Person z) throws java.rmi.RemoteException ;
    /**
     *
     * @param eingeloggte_person
     * @param selektierte_person
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalender> get_kalender_reporter(Person eingeloggte_person, Person selektierte_person) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @param y
     * @param sta
     * @param end
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Kalendereintrag> ausgabe_reporter(Kalender x, Kategorie y, Timestamp sta, Timestamp end) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Vector <Alarm> findall_alarm_by_person(int x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @throws java.rmi.RemoteException
     */
    public void deleteAlarm(Alarm x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Alarm updateAlarm(Alarm x) throws java.rmi.RemoteException ;
    /**
     *
     * @param x
     * @return
     * @throws java.rmi.RemoteException
     */
    public Alarm createAlarm(Alarm x) throws java.rmi.RemoteException ;


}
